#ifndef AST_EXPRESSION_ASSIGNMENT_OPERATOR_H
#define AST_EXPRESSION_ASSIGNMENT_OPERATOR_H


#include "../ASTNode.h"

/*
C99  6.5.16
assignment-operator:    one of
		=  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=
*/
class AssignmentOperator : public ASTNode
{
public:
	enum{
		equality,
		mul_equality,
		div_equality,
		mod_equality,
		add_equality,
		sub_equality,
		lsh_equality,
		rsh_equality,
		and_equality,
		xor_equality,
		or_equality,
	};
protected:
	AssignmentOperator(void)
		: ASTNode(ASTNode::assignment_operator){};
public:
	AssignmentOperator(int iType)
		: ASTNode(ASTNode::assignment_operator)
		, m_iType(iType){};


	virtual ~AssignmentOperator(void){};

	virtual	void					codeGen();
protected:
	tiny_int						m_iType;
};
#endif

